<?php
class class_turnos
{
	private $_db; 
	function __construct()
	{
		$this->config();
	}
	function method_bloquearHoraMedico($params, $error)
    {
        if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        
        $params[0]->fecha = owFunciones::DateToSQL($params[0]->fecha);
        SWITCH ($params[0]->accion)
        {
        	CASE 'vacio':
        	{
        		$this->_db->setQuery("SELECT cod_agenda FROM agenda WHERE dni_usuario = '" . $params[0]->medico . "' AND lu = IF('" . $params[0]->dia . "'=2,1,0) AND ma = IF('" . $params[0]->dia . "'=3,1,0) AND mi = IF('" . $params[0]->dia . "'=4,1,0) AND ju = IF('" . $params[0]->dia . "'=5,1,0) AND vi = IF('" . $params[0]->dia . "'=6,1,0) AND sa = IF('" . $params[0]->dia . "'=7,1,0) AND do = IF('" . $params[0]->dia . "'=1,1,0) AND hora_desde = '" . $params[0]->hora . "' AND hora_hasta = ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "') AND fecha_desde = '" . $params[0]->fecha . "' AND fecha_hasta = '" . $params[0]->fecha . "' AND tipo = 'L'");
        		$this->_db->alter();
        		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		
        		$rows = $this->_db->loadResult();
        		if (count($rows) != 0)
        		{
        			FOREACH ($rows as $reg)
					{
						$this->_db->setQuery("UPDATE agenda SET tipo = 'N', observaciones = 'Bloqueado por Secretaria' WHERE cod_agenda = '" . $reg->cod_agenda . "' AND tipo = 'L' LIMIT 1");
						$this->_db->alter();
						if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
					}
        		}
        		else
        		{
	        		$this->_db->setQuery("INSERT INTO agenda (dni_usuario, lu, ma, mi, ju, vi, sa, do, hora_desde, hora_hasta, fecha_desde, fecha_hasta, observaciones, tipo) VALUES ('" . $params[0]->medico . "', IF('" . $params[0]->dia . "'=2,1,0), IF('" . $params[0]->dia . "'=3,1,0), IF('" . $params[0]->dia . "'=4,1,0), IF('" . $params[0]->dia . "'=5,1,0), IF('" . $params[0]->dia . "'=6,1,0), IF('" . $params[0]->dia . "'=7,1,0), IF('" . $params[0]->dia . "'=1,1,0), '" . $params[0]->hora . "', ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "'), '" . $params[0]->fecha . "', '" . $params[0]->fecha . "', 'Bloqueo por Secretaria', 'N')");
			        $this->_db->alter();
			    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		}
        		break;
        	}
        	CASE 'desbloquear':
        	{
        		$this->_db->setQuery("SELECT cod_agenda FROM agenda WHERE dni_usuario = '" . $params[0]->medico . "' AND lu = IF('" . $params[0]->dia . "'=2,1,0) AND ma = IF('" . $params[0]->dia . "'=3,1,0) AND mi = IF('" . $params[0]->dia . "'=4,1,0) AND ju = IF('" . $params[0]->dia . "'=5,1,0) AND vi = IF('" . $params[0]->dia . "'=6,1,0) AND sa = IF('" . $params[0]->dia . "'=7,1,0) AND do = IF('" . $params[0]->dia . "'=1,1,0) AND hora_desde = '" . $params[0]->hora . "' AND hora_hasta = ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "') AND fecha_desde = '" . $params[0]->fecha . "' AND fecha_hasta = '" . $params[0]->fecha . "' AND tipo = 'N'");
        		$this->_db->alter();
        		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		
        		$rows = $this->_db->loadResult();
        		if (count($rows) != 0)
        		{
        			FOREACH ($rows as $reg)
					{
						$this->_db->setQuery("UPDATE agenda SET tipo = 'L', observaciones = 'Desbloqueado por Secretaria' WHERE cod_agenda = '" . $reg->cod_agenda . "' AND tipo = 'N' LIMIT 1");
						$this->_db->alter();
						if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
					}
        		}
        		else
        		{
        			// TODO Z FUTURO: AQUI DEBE FIJARSE COMO DEBLOQUEAR LA HORA PERO DENTRO DE UN RANGO DE "NO LABORAL". Seguramente va haber que agregar algun indicador de NIVEL DE IMPORTANCIA.
        		}
        		$this->_db->setQuery("UPDATE turnos SET estado = 'N' WHERE dni_usuario = '" . $params[0]->medico . "' AND fecha_asignada = '" . $params[0]->fecha . "' AND hora_asignada BETWEEN '" . $params[0]->hora . "' AND ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "') AND ISNULL(cod_plan) AND estado = 'B'");
		        $this->_db->alter();
		    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		$this->_db->setQuery("UPDATE turnos SET estado = 'E' WHERE dni_usuario = '" . $params[0]->medico . "' AND fecha_asignada = '" . $params[0]->fecha . "' AND hora_asignada BETWEEN '" . $params[0]->hora . "' AND ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "') AND NOT(ISNULL(cod_plan)) AND estado = 'B'");
		        $this->_db->alter();
		    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		break;	
        	}
        	CASE 'pacientes':
        	{
        		$this->_db->setQuery("SELECT cod_agenda FROM agenda WHERE dni_usuario = '" . $params[0]->medico . "' AND lu = IF('" . $params[0]->dia . "'=2,1,0) AND ma = IF('" . $params[0]->dia . "'=3,1,0) AND mi = IF('" . $params[0]->dia . "'=4,1,0) AND ju = IF('" . $params[0]->dia . "'=5,1,0) AND vi = IF('" . $params[0]->dia . "'=6,1,0) AND sa = IF('" . $params[0]->dia . "'=7,1,0) AND do = IF('" . $params[0]->dia . "'=1,1,0) AND hora_desde = '" . $params[0]->hora . "' AND hora_hasta = ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "') AND fecha_desde = '" . $params[0]->fecha . "' AND fecha_hasta = '" . $params[0]->fecha . "' AND tipo = 'L'");
        		$this->_db->alter();
        		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		
        		$rows = $this->_db->loadResult();
        		if (count($rows) != 0)
        		{
        			FOREACH ($rows as $reg)
					{
						$this->_db->setQuery("UPDATE agenda SET tipo = 'N', observaciones = 'Bloqueado por Secretaria' WHERE cod_agenda = '" . $reg->cod_agenda . "' AND tipo = 'L' LIMIT 1");
						$this->_db->alter();
						if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
					}
        		}
        		else
        		{
	        		$this->_db->setQuery("INSERT INTO agenda (dni_usuario, lu, ma, mi, ju, vi, sa, do, hora_desde, hora_hasta, fecha_desde, fecha_hasta, observaciones, tipo) VALUES ('" . $params[0]->medico . "', IF('" . $params[0]->dia . "'=2,1,0), IF('" . $params[0]->dia . "'=3,1,0), IF('" . $params[0]->dia . "'=4,1,0), IF('" . $params[0]->dia . "'=5,1,0), IF('" . $params[0]->dia . "'=6,1,0), IF('" . $params[0]->dia . "'=7,1,0), IF('" . $params[0]->dia . "'=1,1,0), '" . $params[0]->hora . "', ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "'), '" . $params[0]->fecha . "', '" . $params[0]->fecha . "', 'Bloqueo por Secretaria', 'N')");
			        $this->_db->alter();
			    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		}
        		$this->_db->setQuery("UPDATE turnos SET estado = 'B' WHERE dni_usuario = '" . $params[0]->medico . "' AND fecha_asignada = '" . $params[0]->fecha . "' AND hora_asignada BETWEEN '" . $params[0]->hora . "' AND ADDTIME('" . $params[0]->hora . "', '" . $params[0]->rango . "') AND (estado = 'N' OR estado = 'E')");
		        $this->_db->alter();
		    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        		break;
        	}
        }
    }
	function method_getPacientesFechaMedico($params, $error)
    {
        if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        
        $params[0]->fecha = owFunciones::DateToSQL($params[0]->fecha);
        $this->_db->setQuery("
        SELECT cod_turno, 
        SUBSTR( hora_asignada, 1, 5 ) AS hora_asignada, 
        CONCAT( apellido, ', ', nombres ) AS paciente, 
        turnos.dni_paciente, 
        estado, 
        IFNULL( CONCAT( obras_sociales.descripcion, ' - ', planes.descripcion ) , IF( turnos.estado = 'N', '', 'Contado' ) ) AS forma_pago 
        FROM turnos 
        INNER JOIN pacientes ON turnos.dni_paciente = pacientes.dni_paciente 
        LEFT JOIN planes ON turnos.cod_plan = planes.cod_plan 
        LEFT JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social 
        WHERE fecha_asignada = '" . ($params[0]->fecha) . "' 
        AND turnos.dni_usuario = '" . $_SESSION['dni_usuario'] . "' 
        AND turnos.estado IN ('N', 'E', 'A')
        AND turnos.tipo = 'O'
        ORDER BY hora_asignada, entreturno ASC");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$regs = $this->_db->loadResult();
		$result = array();
		FOREACH ($regs as $reg)
		{
			$row = array();
			switch ($reg->estado)
			{
				case 'N': $imgEstado = 'caraffa/nuevo.png'; break;
				case 'E': $imgEstado = 'caraffa/espera.png'; break;
				case 'A': $imgEstado = 'caraffa/atendido.png'; break;
			}
			array_push($row, $reg->cod_turno);
			array_push($row, $reg->dni_paciente);
			array_push($row, $reg->hora_asignada);
			array_push($row, $reg->paciente);
			array_push($row, $imgEstado);
			array_push($row, $reg->forma_pago);
			array_push($result, $row);
		}
		return $result;
    }
    function method_getObservacionesPaciente($params, $error)
    {
    	if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        $result = "";
        $this->_db->setQuery("SELECT cod_paciente_atendido, observaciones FROM pacientes_atendidos WHERE cod_turno = '" . $params[0]->cod_turno . "'");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        
    	$result->datos_turno = $this->_db->loadResult();
    	
    	$this->_db->setQuery("SELECT motivo FROM turnos WHERE cod_turno = '" . $params[0]->cod_turno . "'");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$result->motivo = $this->_db->loadResult();
        
        return $result;
    }
    function method_guardarMarcar($params, $error)
    {
    	if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
    
    	$this->_db->setQuery("SELECT IF(turnos.cod_plan=0, 'contado', tabla) as tabla FROM turnos LEFT JOIN planes ON turnos.cod_plan = planes.cod_plan LEFT JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social WHERE cod_turno = '" . $params[0]->cod_turno . "'");
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	
    	$tabla = $this->_db->loadResult();
    	
    	$this->_db->setQuery("UPDATE os_" . $tabla[0]->tabla . " SET estado = 'A' WHERE cod_turno = '" . $params[0]->cod_turno . "' LIMIT 1");
    	$this->_db->alter();
        if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        
    	if ($params[0]->cod_paciente_atendido != "")
        {
        	$this->_db->setQuery("UPDATE pacientes_atendidos SET observaciones = '" . $params[0]->observaciones . "', fecha = '" . date("Y-m-d") . "', hora = '" . date("H:i:s") . "' WHERE cod_paciente_atendido = '" . $params[0]->cod_paciente_atendido . "' LIMIT 1");
        	$this->_db->alter();
        	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        }
        else
        {
        	$this->_db->setQuery("UPDATE turnos SET estado = 'A' WHERE cod_turno = '" . $params[0]->cod_turno . "' LIMIT 1");
        	$this->_db->alter();
        	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        	$this->_db->setQuery("INSERT INTO pacientes_atendidos (cod_turno, observaciones, fecha, hora) VALUES ('" . $params[0]->cod_turno . "', '" . $params[0]->observaciones . "', '" . date("Y-m-d") . "', '" . date("H:i:s") . "')");
        	$this->_db->alter();
        	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        }
    }
	function method_getTurnosFechaMedico($params, $error)
    {
    	if (! $params[1])
    		$params[1] = $_SESSION['dni_usuario'];
    		
        if (count($params) != 2) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        
        $params[0] = owFunciones::DateToSQL($params[0]);
//        return $params[0];
		
        $this->_db->setQuery("
        SELECT (SUBSTR( hora_asignada, 1, 2 ) +0) AS hora, 
        (DAYOFWEEK( fecha_asignada )) AS dia, 
        (Count( cod_turno )) AS cantidad 
        FROM turnos 
        WHERE estado IN ('N', 'E', 'A') 
        AND dni_usuario = '" . $params[1] . "' 
        AND fecha_asignada BETWEEN '" . $params[0] . "' 
        AND ADDDATE( '" . $params[0] . "', 6) 
        AND tipo = 'O'
        GROUP BY hora, dia ORDER BY hora, dia");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		
    	$regs = $this->_db->loadResult();

    	$result = "";
    	$horas = "";
		FOREACH ($regs as $reg)
		{
			$hora_dia = $reg->hora . $reg->dia;
			$horas->$hora_dia = $reg;
		}
		$result->horas = $horas;
		
	    $SELECT = "";
		FOR ($i=0;$i<=6;$i++)
		{
			if ($i != 6)
			{
				$SELECT .= "(SELECT " . $i . " as i, lu as d2, ma as d3, mi as d4, ju as d5, vi as d6, sa as d7, do as d1, CONCAT((DATE_FORMAT( agenda.hora_desde, '%H' ) +0), '00') AS hora_desde, if((DATE_FORMAT( agenda.hora_hasta, '%H%i' ) +0)=0,2500,(DATE_FORMAT( agenda.hora_hasta, '%H%i' ) +0)) as hora_hasta, tipo FROM agenda WHERE ADDDATE('" . $params[0] . "', " . $i . ") BETWEEN if (fecha_desde='0000-00-00','0001-01-01',fecha_desde) AND if (fecha_hasta='0000-00-00','2999-12-31',fecha_hasta) AND (tipo = 'L' OR tipo = 'N') AND dni_usuario = '" . $params[1] . "') UNION";
			}
			else
			{
				$SELECT .= "(SELECT " . $i . " as i, lu as d2, ma as d3, mi as d4, ju as d5, vi as d6, sa as d7, do as d1, CONCAT((DATE_FORMAT( agenda.hora_desde, '%H' ) +0), '00') AS hora_desde, if((DATE_FORMAT( agenda.hora_hasta, '%H%i' ) +0)=0,2500,(DATE_FORMAT( agenda.hora_hasta, '%H%i' ) +0)) as hora_hasta, tipo FROM agenda WHERE ADDDATE('" . $params[0] . "', " . $i . ") BETWEEN if (fecha_desde='0000-00-00','0001-01-01',fecha_desde) AND if (fecha_hasta='0000-00-00','2999-12-31',fecha_hasta) AND (tipo = 'L' OR tipo = 'N') AND dni_usuario = '" . $params[1] . "')";		
			}
		}
		$this->_db->setQuery($SELECT);
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$regs = $this->_db->loadResult();
    	$trabajo = "";
    	
    	$tmp = "";
    	$diatmp = "";
    	$regtmp = "";
		FOREACH ($regs as $reg)
		{
			if ($diatmp == "")
			{
				$i = 0;
				$diatmp = $reg->i; // 1
				$regtmp = $reg; // 1 - 8 - 18
				$tmp->$i = $regtmp; // reg_0->1 - 8 - 18
				$i++;
			}
			else
			{
				if ($diatmp == $reg->i)
				{
					$regtmp = $reg; // 1 - 9 - 17
					$tmp->$i = $regtmp; // reg_1-n->1 - 9 - 17
					$i++;
				}
				else
				{
					$trabajo->$diatmp = $tmp;
					$tmp = "";
					$i = 0;
					$diatmp = $reg->i; // 2
					$regtmp = $reg; // 2 - 8 - 18
					$tmp->$i = $regtmp; // reg_0->2 - 8 - 18
					$i++;
				}
			}
		}
		if ($diatmp != "")
		{
			$trabajo->$diatmp = $tmp;
		}
		$result->trabajo = $trabajo;
		return $result;
    }
    
    function method_getMedicos($params, $error)
    {
    	if (count($params) != 0) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 0 parameter; got " . count($params)); return $error; }
    	
//		$this->_db->setQuery("SELECT dni_medico, CONCAT(apellido, ', ', nombres) as apeynom FROM medicos");
		$this->_db->setQuery("SELECT dni_usuario, CONCAT(apellido, ', ', nombres) as apeynom FROM usuarios WHERE cod_tipo_usuario = '3' AND estado = 'A'  ORDER BY apeynom");
		$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		$regs = $this->_db->loadResult();
		
    	return $regs;
    }
    
    function method_getTurnosHoraMedico($params, $error)
    {
    	if (count($params) != 3) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 3 parameter; got " . count($params)); return $error; }
    	
    	$params[1] = explode("/", $params[1]);
    	$params[1] = $params[1][2] . "-" . $params[1][1] . "-" . $params[1][0];
    	$params[2] = (substr($params[2], 0, 2) + 0); 
//    	$this->_db->setQuery("SELECT min_turno FROM medicos WHERE dni_medico = '" . $params[0] . "'");
		$this->_db->setQuery("SELECT min_turno FROM usuarios WHERE dni_usuario = '" . $params[0] . "'");
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$regs = $this->_db->loadResult();

    	$medico = ""; // CREO LA VARIABLE MEDICO QUE TIENE 2 ATRIBUTOS: min_turno y pacientes[]
    	$medico->min_turno = $regs[0]->min_turno; // OBTENGO DE CUANTOS MINUTOS ES EL TURNO DEL MEDICO.

    	$this->_db->setQuery("
    		SELECT 
    			cod_turno, 
    			turnos.cod_plan, 
    			(CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) as forma_pago, 
    			CONCAT(pacientes.apellido, ', ', pacientes.nombres) as apeynom, 
    			SUBSTR(hora_asignada,1,5) as hora_asignada, 
    			entreturno, 
    			turnos.estado, 
    			telefono1, 
    			nro_historia_clinica, 
    			motivo,
    			pacientes.origen,
    			pacientes.dni_usuario as pertenece, 
    			usuario 
    		FROM turnos 
    		INNER JOIN pacientes ON turnos.dni_paciente = pacientes.dni_paciente 
    		LEFT JOIN planes ON turnos.cod_plan = planes.cod_plan 
    		LEFT JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social
    		LEFT JOIN usuarios ON usuarios.dni_usuario = turnos.dni_usuario_registra 
    		WHERE turnos.estado IN ('N', 'E', 'A') 
    		AND turnos.dni_usuario = '" . $params[0] . "' 
    		AND fecha_asignada = '" . $params[1] . "' 
    		AND (SUBSTR(hora_asignada, 1, 2)+0) = '" . $params[2] . "' 
    		ORDER BY hora_asignada ASC , entreturno DESC");
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$regs = $this->_db->loadResult();

    	FOR ($i = 0, $count = count($regs); $i<=$count-1; $i++)
		{
			switch ($regs[$i]->origen) {
				case 'P':
					$regs[$i]->origen = 'Personal';
				break;
				case 'C':
					$regs[$i]->origen = 'Caraffa';
				break;
				case 'O':
					$regs[$i]->origen = 'Policlinico';
				break;
				default:
					$regs[$i]->origen = '';
				break;
			}
			
			$this->_db->setQuery("
			SELECT usuario 
			FROM usuarios
			WHERE dni_usuario = '" . $regs[$i]->pertenece . "' 
			");
			$this->_db->alter();
			if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
			$pertenece = $this->_db->loadResult();
			
			$regs[$i]->pertenece = $pertenece[0]->usuario;
			
			if (is_null($regs[$i]->cod_plan))
			{
				$regs[$i]->forma_pago = "";
			}
			else
			{
				if ($regs[$i]->cod_plan == "0")
				{
					$regs[$i]->forma_pago = "Contado";
				}
			}
		}
    	
    	$medico->pacientes = $regs;
		$this->_db->setQuery("SELECT lu as d2, ma as d3, mi as d4, ju as d5, vi as d6, sa as d7, do as d1, (DATE_FORMAT( agenda.hora_desde, '%H%i' ) +0) AS hora_desde, if((DATE_FORMAT( agenda.hora_hasta, '%H%i' ) +0)=0,9999,(DATE_FORMAT( agenda.hora_hasta, '%H%i' ) +0)) AS hora_hasta, tipo FROM agenda WHERE '" . $params[1] . "' BETWEEN if( fecha_desde = '0000-00-00', '0001-01-01', fecha_desde ) AND if( fecha_hasta = '0000-00-00', '2999-12-31', fecha_hasta ) AND (tipo = 'L' OR tipo = 'N') AND '" . $params[2] . "' BETWEEN (SUBSTR( hora_desde, 1, 2 ) +0) AND (if( (SUBSTR( hora_hasta, 1, 2 ) +0 ) =0, 24, (SUBSTR( hora_hasta, 1, 2 ) +0))) AND dni_usuario = '" . $params[0] . "'");
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$medico->agenda = $this->_db->loadResult();
    	return $medico;
    }
	function method_altaTurno($params, $error)
    {
        if (count($params) != 6) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 6 parameter; got " . count($params)); return $error; }
        $params[3] = explode("/", $params[3]);
        $params[3] = $params[3][2] . "-" . $params[3][1] . "-" . $params[3][0];

    	$this->_db->setQuery("INSERT INTO turnos (dni_usuario, dni_paciente, motivo, fecha_asignada, hora_asignada, entreturno, dni_usuario_registra) VALUES ('" . $params[0] . "', '" . $params[1] . "', '" . $params[2] . "', '" . $params[3] . "', '" . $params[4] . "', '" . $params[5] . "', '" . $_SESSION['dni_usuario'] . "')");
		$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		return true;
    }
	function method_cancelaTurno($params, $error)
    {
        if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }

        $this->_db->setQuery("UPDATE turnos SET estado = 'C' WHERE cod_turno = '" . $params[0] . "' LIMIT 1");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	return true;
    }
	function method_bloquearTurno($params, $error)
    {
        if (count($params) != 1)
        {
            $error->SetError(JsonRpcError_ParameterMismatch,
                             "Expected 1 parameter; got " . count($params));
            return $error;
        }

        $this->_db->setQuery("UPDATE turnos SET estado = 'B' WHERE cod_turno = '" . $params[0] . "' LIMIT 1");
        $this->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		return true;
    }
    function method_getFormasPago($params, $error)
    {
    	if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        $this->_db->setQuery("SELECT cod_plan, dni_paciente, (IFNULL(CONCAT('os_', (SELECT tabla FROM obras_sociales INNER JOIN planes ON obras_sociales.cod_obra_social = planes.cod_obra_social WHERE planes.cod_plan = turnos.cod_plan)), 'os_contado' )) AS tabla FROM turnos WHERE cod_turno = '" . $params[0] . "'");
		$this->_db->alter();
    	if (mysql_error()){ $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error()));	}
		
    	$turnos = $this->_db->loadResult();
        
		$result = "";

		$this->_db->setQuery("SELECT cod_plan as value, (CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) as label FROM planes INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social INNER JOIN pacientes ON (planes.cod_plan = pacientes.cod_plan1 OR planes.cod_plan = pacientes.cod_plan2) AND pacientes.dni_paciente = '" . $turnos[0]->dni_paciente . "'");
		$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		
    	$regs = $this->_db->loadResult();
		
		
		$result->values = $regs;
		if ($turnos[0]->cod_plan != null) $result->selected = $turnos[0]->cod_plan;
		
    	return $result;
    }
    function method_setFormasPago($params, $error)
    {
    	if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
        $this->_db->setQuery("SELECT CONCAT('os_', tabla) as tabla FROM obras_sociales INNER JOIN planes ON obras_sociales.cod_obra_social = planes.cod_obra_social INNER JOIN turnos ON planes.cod_plan = turnos.cod_plan WHERE cod_turno = '" . $params[0]->codTurno . "'");
        $this->_db->alter();
        if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        
        $tabla = $this->_db->loadResult();
        if ($tabla[0]->tabla == "")
        {
        	$tabla[0]->tabla = "os_contado";
        	$this->_db->setQuery("DELETE FROM pagares WHERE cod_turno = '" . $params[0]->codTurno . "'");
			$this->_db->alter();
			if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        }
		$this->_db->setQuery("DELETE FROM " . $tabla[0]->tabla . " WHERE cod_turno = '" . $params[0]->codTurno . "'");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
	        
        $this->_db->setQuery("UPDATE turnos SET cod_plan = '" . $params[0]->formaPago . "', estado = 'E' WHERE cod_turno = '" . $params[0]->codTurno . "' LIMIT 1");
    	$this->_db->alter();
        if (mysql_error())
        {
        	$error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 4) . ": " . mysql_error()));
            return $error;
        }		
        
    	if ($params[0]->formaPago === "0")
		{
			$pagares = "N";
			if($params[0]->pagares != ""){
				$pagares = "S";	
			}
				$this->_db->setQuery("INSERT INTO os_contado (cod_turno, fecha, cod_nomenclador, observaciones, importe, pagares) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->importe . "', '" . $pagares . "')");
		        $this->_db->alter();
				if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
			
			if($params[0]->pagares != ""){
				$this->_db->setQuery("DELETE FROM pagares WHERE cod_turno = '" . $params[0]->codTurno . "'");
				$this->_db->alter();
				if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
				foreach ($params[0]->pagares as $pagare) {
					$this->_db->setQuery("INSERT INTO pagares (cod_turno, fecha_vencimiento, importe, estado, dni_usuario) VALUES ('".$params[0]->codTurno."', '".$pagare->vencimiento."', '".$pagare->importe."', 'D', '".$_SESSION['dni_usuario']."')");
	        		$this->_db->alter();
					if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
				}	
			}			
		}
		else
		{
			//ADD osocial case switch ($params[0]->tabla)
	    	switch ($params[0]->tabla)
			{
				case 'os_caraffa': 
				{
					$this->_db->setQuery("INSERT INTO os_caraffa (cod_turno, fecha, cod_nomenclador, observaciones, importe, plus) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->importe . "', '" . $params[0]->plus . "')");
					$this->_db->alter();
					if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
					break;
				}
				case 'os_parque_salud': 
				{
					$this->_db->setQuery("INSERT INTO os_parque_salud (cod_turno, fecha, cod_nomenclador, observaciones, codigo_habilitacion, importe, plus) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->codigoHabilitacion . "', '" . $params[0]->importe . "', '" . $params[0]->plus . "')");
					$this->_db->alter();
					if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
					break;
				}
				case 'os_family': 
				{
					$this->_db->setQuery("INSERT INTO os_family (cod_turno, fecha, cod_nomenclador, observaciones, codigo_habilitacion, importe, plus) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->codigoHabilitacion . "', '" . $params[0]->importe . "', '" . $params[0]->plus . "')");
					$this->_db->alter();
					if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
					break;
				}
				case 'os_plan_dorado':
				{
					$this->_db->setQuery("INSERT INTO os_plan_dorado (cod_turno, fecha, cod_nomenclador, observaciones, importe, plus) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->importe . "', '" . $params[0]->plus . "')");
					$this->_db->alter();
					if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }				
					break;
				}
				case 'os_apross':
				{
					$this->_db->setQuery("INSERT INTO os_apross (cod_turno, fecha, cod_nomenclador, observaciones, codigo_habilitacion, importe, plus) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->codigoHabilitacion . "', '" . $params[0]->importe . "', '" . $params[0]->plus . "')");
					$this->_db->alter();
					if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }				
					break;
				}
				case 'os_surbac':
					{
						$this->_db->setQuery("INSERT INTO os_surbac (cod_turno, fecha, cod_nomenclador, observaciones, codigo_habilitacion, importe, plus) VALUES ('" . $params[0]->codTurno . "', '" . date("Y-m-d") . "', '" . $params[0]->prestacion . "', '" . $params[0]->observaciones . "', '" . $params[0]->codigoHabilitacion . "', '" . $params[0]->importe . "', '" . $params[0]->plus . "')");
						$this->_db->alter();
						if (mysql_error()) {
							$error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error;
						}
						break;
					}
			}
		}
		return true;
    }
    function method_getPrestaciones($params, $error)
    {
//        $this->_db->setQuery("SELECT cod_prestacion AS value, CONCAT(prestaciones_rubros.descripcion,' ',prestaciones.descripcion) AS label FROM prestaciones INNER JOIN prestaciones_rubros ON prestaciones_rubros.cod_prestacion_rubro = prestaciones.cod_prestacion_rubro");
		IF (($params[0]->forma_pago == "0") && ($params[0]->tipo == "C"))
			$params[0]->tipo = "C0";
		SWITCH ($params[0]->tipo)
		{
			CASE 'C':
			{
				$this->_db->setQuery("
				SELECT nomenclador.cod_nomenclador as value, CONCAT(prestaciones_rubros.descripcion, ' - ', prestaciones.descripcion) as label
				FROM nomenclador
				INNER JOIN prestaciones ON nomenclador.cod_prestacion = prestaciones.cod_prestacion
				INNER JOIN cirugias ON prestaciones.cod_prestacion = cirugias.cod_prestacion
				INNER JOIN prestaciones_rubros ON prestaciones.cod_prestacion_rubro = prestaciones_rubros.cod_prestacion_rubro
				AND cirugias.cod_turno = '" . $params[0]->cod_turno . "'
				INNER JOIN planes ON nomenclador.cod_plan = planes.cod_plan
				INNER JOIN pacientes ON ( pacientes.cod_plan1 = planes.cod_plan
				OR pacientes.cod_plan2 = planes.cod_plan )
				INNER JOIN turnos ON pacientes.dni_paciente = turnos.dni_paciente
				AND turnos.cod_turno = '" . $params[0]->cod_turno . "'
				WHERE nomenclador.cod_plan = '" . $params[0]->forma_pago . "'
				AND nomenclador.importe IS NOT NULL
				");
				break;				
			}
			CASE 'C0':
			{
				$this->_db->setQuery("
				SELECT nomenclador.cod_nomenclador as value, CONCAT(prestaciones_rubros.descripcion, ' - ', prestaciones.descripcion) as label
				FROM nomenclador
				INNER JOIN prestaciones ON nomenclador.cod_prestacion = prestaciones.cod_prestacion
				INNER JOIN cirugias ON prestaciones.cod_prestacion = cirugias.cod_prestacion
				INNER JOIN prestaciones_rubros ON prestaciones.cod_prestacion_rubro = prestaciones_rubros.cod_prestacion_rubro
				AND cirugias.cod_turno = '" . $params[0]->cod_turno . "'
				INNER JOIN turnos ON turnos.cod_turno = '" . $params[0]->cod_turno . "'
				WHERE nomenclador.cod_plan = '" . $params[0]->forma_pago . "'
				AND nomenclador.importe IS NOT NULL
				");
				break;
			}
			DEFAULT:
			{
				$this->_db->setQuery("
				SELECT cod_nomenclador as value, 
				CONCAT(prestaciones_rubros.descripcion,' - ',prestaciones.descripcion) as label 
				FROM nomenclador 
				INNER JOIN prestaciones ON nomenclador.cod_prestacion = prestaciones.cod_prestacion 
				AND prestaciones.cod_prestacion_rubro != '1' 
				INNER JOIN prestaciones_rubros ON prestaciones_rubros.cod_prestacion_rubro = prestaciones.cod_prestacion_rubro 
				WHERE nomenclador.cod_plan = '" . $params[0]->forma_pago . "'
				AND nomenclador.importe IS NOT NULL
				");
				break;
			}
		}
        
    	$this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	
    	$result = "";
        $result->cmbValues = $this->_db->loadResult();
    	
        $this->_db->setQuery("
        SELECT cod_nomenclador, 
        importe 
        FROM nomenclador 
        WHERE cod_plan = '" . $params[0]->forma_pago . "'
        AND importe IS NOT NULL
        ");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	
    	$regs = $this->_db->loadResult();
    	FOREACH ($regs as $reg)
		{
			$cod_nomenclador = $reg->cod_nomenclador;
			$result->$cod_nomenclador = $reg->importe;
		}
		return $result;
    }
    function method_getObraSocialPlan($params, $error)
    {
    	if (count($params) != 2) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 2 parameter; got " . count($params)); return $error; }
        $this->_db->setQuery("SELECT CONCAT('os_', tabla) as tabla FROM planes INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social WHERE cod_plan = '" . $params[0] . "'");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
        
    	$tmp = $this->_db->loadResult();
    	$OS->tabla = $tmp[0]->tabla;
    	$OS->datos = $this->_getDatosCargadosOS($params[1]);
    	if ($OS->tabla == "os_contado")
    	{
    		
    	}
        return $OS;
    }
    private function _getDatosCargadosOS($codTurno)
    {
    	$this->_db->setQuery("SELECT (IFNULL(CONCAT('os_', (SELECT tabla FROM obras_sociales INNER JOIN planes ON obras_sociales.cod_obra_social = planes.cod_obra_social WHERE planes.cod_plan = turnos.cod_plan)), 'os_contado' )) AS tabla FROM turnos WHERE cod_turno = '" . $codTurno . "'");
		$this->_db->alter(); if (mysql_error()) { return false; }
		
    	$turnos = $this->_db->loadResult();
        
		$result = "";
		
		$this->_db->setQuery("SELECT * FROM " . ($turnos[0]->tabla) . " WHERE cod_turno = '" . $codTurno . "'");
		$this->_db->alter(); if (mysql_error()) { return false; }
		$datos = $this->_db->loadResult();
		
		//ADD osocial case switch ($turnos[0]->tabla) 
		switch ($turnos[0]->tabla)
		{
			case 'os_caraffa':
			{
				$result->codigo_habilitacion = $datos[0]->codigo_habilitacion;
				break;
			}
			case 'os_parque_salud': 
			{
				$result->codigo_habilitacion = $datos[0]->codigo_habilitacion;
				break;
			}
			case 'os_family': 
			{
				$result->codigo_habilitacion = $datos[0]->codigo_habilitacion;
				break;
			}
			case 'os_plan_dorado':
			{
				
				break;
			}
			case 'os_apross':
			{
				$result->codigo_habilitacion = $datos[0]->codigo_habilitacion;	
				break;
			}
			case 'os_surbac':
			{
				$result->codigo_habilitacion = $datos[0]->codigo_habilitacion;	
				break;
			}			
			case 'os_contado':
			{
				$this->_db->setQuery("SELECT DATE_FORMAT(fecha_vencimiento, '%d/%m/%Y') as fecha_vencimiento, importe FROM pagares WHERE cod_turno = '" . $codTurno . "' ORDER BY cod_pagare");
				$result->pagares = $this->_db->loadResult();
				break;
			}
		}
		
		$result->actual = $turnos[0]->tabla;
		$result->cod_prestacion = $datos[0]->cod_nomenclador;
		$result->observaciones = $datos[0]->observaciones;
		$result->importe = $datos[0]->importe;
		$result->plus = $datos[0]->plus;
		
		return $result;
    }
    function method_getTurnosEncontrados($params, $error)
    {
    	if (count($params) != 1) { $error->SetError(JsonRpcError_ParameterMismatch, "Expected 1 parameter; got " . count($params)); return $error; }
    	if ($params[0]->filtro == 'D')
    		$filtro = "WHERE turnos.dni_paciente LIKE '%" . $params[0]->buscar . "%' AND turnos.tipo = 'O' ";
    	else
    		$filtro = "WHERE CONCAT(pacientes.apellido, ', ', pacientes.nombres) LIKE '%" . $params[0]->buscar . "%' AND turnos.tipo = 'O' ";
    	
		$this->_db->setQuery("
		SELECT cod_turno, 
		DATE_FORMAT(fecha_asignada, '%d/%m/%Y') as fecha_asignada, 
		hora_asignada, 
		CONCAT(turnos.dni_paciente, ' - ', pacientes.apellido, ', ', pacientes.nombres) as paciente, 
		usuarios.usuario as medico, 
		motivo,
		(IF(ISNULL(turnos.cod_plan),'',
			IF(turnos.cod_plan=0,'PARTICULAR',
			(
				SELECT CONCAT(planes.descripcion, ' - ', obras_sociales.descripcion)
				FROM planes 
				INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social
				WHERE cod_plan = turnos.cod_plan
			)))
		) as plan,
		IF(ISNULL(turnos.cod_plan),'',turnos.cod_plan) as cod_plan,
		(CASE turnos.estado
			WHEN 'N' THEN 'caraffa/nuevo.png'
			WHEN 'E' THEN 'caraffa/espera.png'
			WHEN 'A' THEN 'caraffa/atendido.png'
			WHEN 'B' THEN 'caraffa/candadoCerrado.png'
			WHEN 'C' THEN 'caraffa/cruz.png'
		END) as estado 
		FROM turnos 
		INNER JOIN pacientes ON turnos.dni_paciente = pacientes.dni_paciente 
		INNER JOIN usuarios ON turnos.dni_usuario = usuarios.dni_usuario " . $filtro);
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	$regs = $this->_db->loadResult();
		$result = array();
		FOREACH ($regs as $reg)
		{
			$row = array();
			
			$this->_db->setQuery("SELECT CONCAT('os_', tabla) as tabla 
			FROM planes 
			INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social 
			WHERE planes.cod_plan = '" . $reg->cod_plan . "'");
			$this->_db->alter();
    		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    		$tabla = $this->_db->loadResult();
    		$tabla = $tabla[0]->tabla;
    		
    		if ($tabla != '')
    		{
	    		$this->_db->setQuery("SELECT prestaciones.descripcion as prestacion, " . $tabla . ".importe 
	    		FROM " . $tabla . " 
	    		INNER JOIN nomenclador ON " . $tabla . ".cod_nomenclador = nomenclador.cod_nomenclador
	    		INNER JOIN prestaciones ON nomenclador.cod_prestacion = prestaciones.cod_prestacion
	    		WHERE cod_turno = '" . $reg->cod_turno . "'");
	    		$this->_db->alter();
	    		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
	    		$os = $this->_db->loadResult();
	    		$prestacion = $os[0]->prestacion;
	    		$importe = $os[0]->importe;	    		 
    		}
    		else
    		{
    			$prestacion = '';
    			$importe = '';
    		}
			
			array_push($row, $reg->cod_turno);
			array_push($row, $reg->fecha_asignada);
			array_push($row, $reg->hora_asignada);
			array_push($row, $reg->paciente);
			array_push($row, $reg->medico);
			array_push($row, $reg->plan);
			array_push($row, $prestacion);
			array_push($row, $importe);
			array_push($row, $reg->estado);
			array_push($result, $row);
		}
		return $result;
    }
	private function config(){
		require_once("conexion.php");
		require_once("DataBase.php");
		$this->_db = new DataBase($SERVIDOR,$USUARIO,$PASSWORD,$BASE);
		mysql_query("SET NAMES utf8");
	}
}
?>